package com.quiz.bis.service;

import com.quiz.bis.domain.dto.*;
import com.quiz.common.core.domain.R;

import java.util.List;

/**
 * 题目查重服务层接口
 * @author ahuan
 */
public interface IQuestionDuplicateCheckService {

    /**
     * 提交题目并保存指纹
     * @param dto 题目提交DTO
     * @return 题目ID
     */
    R<Long> submitQuestion(QuestionSubmitDto dto);

    /**
     * 检查题目是否重复
     * @param dto 题目查重DTO
     * @return 查重结果列表
     */
    R<List<QuestionDuplicateResult>> checkDuplicate(QuestionDuplicateCheckDto dto);

    /**
     * 批量检查题目是否重复
     * @param dtos 题目查重DTO列表
     * @return 查重结果列表
     */
    R<List<QuestionDuplicateResult>> batchCheckDuplicate(List<QuestionDuplicateCheckDto> dtos);

    /**
     * 获取题目查重详细信息
     * @param questionId 题目ID
     * @param targetId 对比目标ID
     * @return 查重详细信息
     */
    R<QuestionDuplicateDetail> getDuplicateDetail(Long questionId, Long targetId);
}